/**
 * Copyright (C) 2010
 * Swarm Intelligence Team (SIT)
 * Department of Computer and Systems
 * University of Pernambuco
 * Brazil
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */
package br.upe.ecomp.dosa.view.wizard;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.AbstractListModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import org.jdesktop.layout.GroupLayout;
import org.jdesktop.layout.LayoutStyle;

/**
 * Wizard Dialog.
 * <p>
 * All the code was automatically generated using NetBeans.
 * 
 * @author Rodrigo Castro
 */
public abstract class Wizard extends javax.swing.JDialog {

    /**
     * Creates new form Wizard.
     * 
     * @param parent the Frame from which the dialog is displayed.
     * @param modal specifies whether dialog blocks user input to other top-level
     *            windows when shown. If <code>true</code>, the modality type property is set to
     *            <code>DEFAULT_MODALITY_TYPE</code>, otherwise the dialog is modeless.
     */
    public Wizard(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
    }

    /**
     * This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        defaultPanel = new JPanel();
        algorithmPanel = new JPanel();
        algorithmComboBox = new JComboBox();
        algorithmLabel = new JLabel();
        algorithmTitleSeparator = new JSeparator();
        algorithmDescriptionScrollPane = new JScrollPane();
        algorithmDescriptionTextArea = new JTextArea();
        jLabel7 = new JLabel();
        jSeparator6 = new JSeparator();
        problemPanel = new JPanel();
        problemComboBox = new JComboBox();
        problemLabel = new JLabel();
        problemTitleSeparator = new JSeparator();
        problemDescriptionScrollPane = new JScrollPane();
        problemDescriptionTextArea = new JTextArea();
        jLabel8 = new JLabel();
        jSeparator7 = new JSeparator();
        stopConditionPanel = new JPanel();
        stopConditionLabel = new JLabel();
        jSeparator3 = new JSeparator();
        jLabel4 = new JLabel();
        stopConditionAvailableScrollPane = new JScrollPane();
        stopConditionAvailableList = new JList();
        stopConditionAddButton = new JButton();
        stopConditionRemoveButton = new JButton();
        stopConditionAddAllButton = new JButton();
        stopConditionRemoveAllButton = new JButton();
        stopConditionSelectedScrollPane = new JScrollPane();
        stopConditionSelectedList = new JList();
        stopConditionUpButton = new JButton();
        stopConditionDownButton = new JButton();
        stopConditionDescriptionScrollPane = new JScrollPane();
        stopConditionDescriptionTextArea = new JTextArea();
        jLabel5 = new JLabel();
        jSeparator4 = new JSeparator();
        jLabel3 = new JLabel();
        measurementPanel = new JPanel();
        measurementLabel = new JLabel();
        jSeparator9 = new JSeparator();
        jLabel10 = new JLabel();
        measurementAvailableScrollPane = new JScrollPane();
        measurementAvailableList = new JList();
        measurementAddButton = new JButton();
        measurementRemoveButton = new JButton();
        measurementAddAllButton = new JButton();
        measurementRemoveAllButton = new JButton();
        measurementSelectedScrollPane = new JScrollPane();
        measurementSelectedList = new JList();
        measurementUpButton = new JButton();
        measurementDownButton = new JButton();
        measurementDescriptionScrollPane = new JScrollPane();
        measurementDescriptionTextArea = new JTextArea();
        jLabel11 = new JLabel();
        jSeparator10 = new JSeparator();
        jLabel12 = new JLabel();
        filePanel = new JPanel();
        fileLabel = new JLabel();
        jSeparator11 = new JSeparator();
        jLabel14 = new JLabel();
        fileNameTextField = new JTextField();
        jLabel15 = new JLabel();
        fileLocationTextField = new JTextField();
        fileBrowseButton = new JButton();
        flowButtonsPanel = new JPanel();
        backButton = new JButton();
        nextButton = new JButton();
        finishButton = new JButton();
        cancelButton = new JButton();

        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Creation Test Scenario Wizard");
        setAlwaysOnTop(true);

        defaultPanel.setLayout(new CardLayout());

        algorithmComboBox.setModel(new DefaultComboBoxModel(new String[] { "Algorithm 1", "Algorithm 2", "Algorithm 3",
                "Algorithm 4" }));

        algorithmLabel.setText("Algorithm");

        algorithmDescriptionScrollPane.setBackground(new Color(153, 153, 153));
        algorithmDescriptionScrollPane.setBorder(null);

        algorithmDescriptionTextArea.setBackground(new Color(238, 238, 238));
        algorithmDescriptionTextArea.setColumns(20);
        algorithmDescriptionTextArea.setEditable(false);
        algorithmDescriptionTextArea.setRows(5);
        algorithmDescriptionTextArea.setText("Algorithm description goes here...");
        algorithmDescriptionTextArea.setWrapStyleWord(true);
        algorithmDescriptionTextArea.setCaretColor(new Color(238, 238, 238));
        algorithmDescriptionTextArea.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
        algorithmDescriptionScrollPane.setViewportView(algorithmDescriptionTextArea);

        jLabel7.setText("Description");

        GroupLayout algorithmPanelLayout = new GroupLayout(algorithmPanel);
        algorithmPanel.setLayout(algorithmPanelLayout);
        algorithmPanelLayout.setHorizontalGroup(algorithmPanelLayout.createParallelGroup(GroupLayout.LEADING).add(
                algorithmPanelLayout
                        .createSequentialGroup()
                        .addContainerGap()
                        .add(algorithmPanelLayout.createParallelGroup(GroupLayout.LEADING).add(jLabel7)
                                .add(algorithmDescriptionScrollPane, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                .add(jSeparator6, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                .add(algorithmComboBox, 0, 659, Short.MAX_VALUE)
                                .add(algorithmTitleSeparator, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                .add(algorithmLabel)).addContainerGap()));
        algorithmPanelLayout.setVerticalGroup(algorithmPanelLayout.createParallelGroup(GroupLayout.LEADING).add(
                algorithmPanelLayout
                        .createSequentialGroup()
                        .addContainerGap()
                        .add(algorithmLabel)
                        .add(0, 0, 0)
                        .add(algorithmTitleSeparator, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(LayoutStyle.UNRELATED)
                        .add(algorithmComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(LayoutStyle.RELATED, 191, Short.MAX_VALUE)
                        .add(jLabel7)
                        .add(0, 0, 0)
                        .add(jSeparator6, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                        .add(0, 0, 0)
                        .add(algorithmDescriptionScrollPane, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE).addContainerGap()));

        defaultPanel.add(algorithmPanel, "card2");

        problemComboBox.setModel(new DefaultComboBoxModel(new String[] { "Problem 1", "Problem 2", "Problem 3",
                "Problem 4" }));

        problemLabel.setText("Problem");

        problemDescriptionScrollPane.setBackground(new Color(153, 153, 153));
        problemDescriptionScrollPane.setBorder(null);

        problemDescriptionTextArea.setBackground(new Color(238, 238, 238));
        problemDescriptionTextArea.setColumns(20);
        problemDescriptionTextArea.setEditable(false);
        problemDescriptionTextArea.setRows(5);
        problemDescriptionTextArea.setText("Problem description goes here...");
        problemDescriptionTextArea.setWrapStyleWord(true);
        problemDescriptionTextArea.setCaretColor(new Color(238, 238, 238));
        problemDescriptionTextArea.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
        problemDescriptionScrollPane.setViewportView(problemDescriptionTextArea);

        jLabel8.setText("Description");

        GroupLayout problemPanelLayout = new GroupLayout(problemPanel);
        problemPanel.setLayout(problemPanelLayout);
        problemPanelLayout.setHorizontalGroup(problemPanelLayout.createParallelGroup(GroupLayout.LEADING).add(
                problemPanelLayout
                        .createSequentialGroup()
                        .addContainerGap()
                        .add(problemPanelLayout.createParallelGroup(GroupLayout.LEADING).add(jLabel8)
                                .add(problemDescriptionScrollPane, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                .add(jSeparator7, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                .add(problemComboBox, 0, 659, Short.MAX_VALUE)
                                .add(problemTitleSeparator, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                .add(problemLabel)).addContainerGap()));
        problemPanelLayout.setVerticalGroup(problemPanelLayout.createParallelGroup(GroupLayout.LEADING).add(
                problemPanelLayout
                        .createSequentialGroup()
                        .addContainerGap()
                        .add(problemLabel)
                        .add(0, 0, 0)
                        .add(problemTitleSeparator, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(LayoutStyle.UNRELATED)
                        .add(problemComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(LayoutStyle.RELATED, 191, Short.MAX_VALUE)
                        .add(jLabel8)
                        .add(0, 0, 0)
                        .add(jSeparator7, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                        .add(0, 0, 0)
                        .add(problemDescriptionScrollPane, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE).addContainerGap()));

        defaultPanel.add(problemPanel, "card3");

        stopConditionLabel.setText("Stop conditions");

        jLabel4.setText("Available:");

        stopConditionAvailableList.setModel(new AbstractListModel() {
            String[] strings = { "Stop condition 1", "Stop condition 2", "Stop condition 5" };

            public int getSize() {
                return strings.length;
            }

            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        stopConditionAvailableScrollPane.setViewportView(stopConditionAvailableList);

        stopConditionAddButton.setText("Add >");
        stopConditionAddButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                stopConditionAddButtonActionPerformed(evt);
            }
        });

        stopConditionRemoveButton.setText("< Remove");
        stopConditionRemoveButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                stopConditionRemoveButtonActionPerformed(evt);
            }
        });

        stopConditionAddAllButton.setText("Add All >>");
        stopConditionAddAllButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                stopConditionAddAllButtonActionPerformed(evt);
            }
        });

        stopConditionRemoveAllButton.setText("<< Remoce All");
        stopConditionRemoveAllButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                stopConditionRemoveAllButtonActionPerformed(evt);
            }
        });

        stopConditionSelectedList.setModel(new AbstractListModel() {
            String[] strings = { "Stop condition 3", "Stop condition 4" };

            public int getSize() {
                return strings.length;
            }

            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        stopConditionSelectedScrollPane.setViewportView(stopConditionSelectedList);

        stopConditionUpButton.setText("Up");
        stopConditionUpButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                stopConditionUpButtonActionPerformed(evt);
            }
        });

        stopConditionDownButton.setText("Down");
        stopConditionDownButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                stopConditionDownButtonActionPerformed(evt);
            }
        });

        stopConditionDescriptionScrollPane.setBackground(new Color(153, 153, 153));
        stopConditionDescriptionScrollPane.setBorder(null);

        stopConditionDescriptionTextArea.setBackground(new Color(238, 238, 238));
        stopConditionDescriptionTextArea.setColumns(20);
        stopConditionDescriptionTextArea.setEditable(false);
        stopConditionDescriptionTextArea.setRows(5);
        stopConditionDescriptionTextArea.setText("Stop condition description goes here...");
        stopConditionDescriptionTextArea.setWrapStyleWord(true);
        stopConditionDescriptionTextArea.setCaretColor(new Color(238, 238, 238));
        stopConditionDescriptionTextArea.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
        stopConditionDescriptionScrollPane.setViewportView(stopConditionDescriptionTextArea);

        jLabel5.setText("Description");

        jLabel3.setText("Selected:");

        GroupLayout stopConditionPanelLayout = new GroupLayout(stopConditionPanel);
        stopConditionPanel.setLayout(stopConditionPanelLayout);
        stopConditionPanelLayout
                .setHorizontalGroup(stopConditionPanelLayout
                        .createParallelGroup(GroupLayout.LEADING)
                        .add(stopConditionPanelLayout
                                .createSequentialGroup()
                                .addContainerGap()
                                .add(stopConditionPanelLayout
                                        .createParallelGroup(GroupLayout.LEADING)
                                        .add(jSeparator3, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                        .add(stopConditionLabel)
                                        .add(jLabel5)
                                        .add(stopConditionDescriptionScrollPane, GroupLayout.DEFAULT_SIZE, 659,
                                                Short.MAX_VALUE)
                                        .add(jSeparator4, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                        .add(stopConditionPanelLayout
                                                .createSequentialGroup()
                                                .add(stopConditionPanelLayout
                                                        .createParallelGroup(GroupLayout.LEADING)
                                                        .add(stopConditionPanelLayout
                                                                .createSequentialGroup()
                                                                .add(stopConditionAvailableScrollPane,
                                                                        GroupLayout.PREFERRED_SIZE, 198,
                                                                        GroupLayout.PREFERRED_SIZE)
                                                                .add(18, 18, 18)
                                                                .add(stopConditionPanelLayout
                                                                        .createParallelGroup(GroupLayout.LEADING, false)
                                                                        .add(stopConditionRemoveAllButton,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                Short.MAX_VALUE)
                                                                        .add(stopConditionRemoveButton,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                Short.MAX_VALUE)
                                                                        .add(stopConditionAddButton,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                Short.MAX_VALUE)
                                                                        .add(stopConditionAddAllButton,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                Short.MAX_VALUE))).add(jLabel4))
                                                .add(18, 18, 18)
                                                .add(stopConditionPanelLayout
                                                        .createParallelGroup(GroupLayout.LEADING)
                                                        .add(jLabel3)
                                                        .add(stopConditionPanelLayout
                                                                .createSequentialGroup()
                                                                .add(stopConditionSelectedScrollPane,
                                                                        GroupLayout.PREFERRED_SIZE, 198,
                                                                        GroupLayout.PREFERRED_SIZE)
                                                                .addPreferredGap(LayoutStyle.RELATED)
                                                                .add(stopConditionPanelLayout
                                                                        .createParallelGroup(GroupLayout.LEADING, false)
                                                                        .add(stopConditionUpButton,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                Short.MAX_VALUE)
                                                                        .add(stopConditionDownButton,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                Short.MAX_VALUE)))))).addContainerGap()));
        stopConditionPanelLayout.setVerticalGroup(stopConditionPanelLayout.createParallelGroup(GroupLayout.LEADING)
                .add(stopConditionPanelLayout
                        .createSequentialGroup()
                        .addContainerGap()
                        .add(stopConditionLabel)
                        .add(0, 0, 0)
                        .add(jSeparator3, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
                        .add(18, 18, 18)
                        .add(stopConditionPanelLayout.createParallelGroup(GroupLayout.BASELINE).add(jLabel4)
                                .add(jLabel3))
                        .addPreferredGap(LayoutStyle.RELATED)
                        .add(stopConditionPanelLayout
                                .createParallelGroup(GroupLayout.LEADING)
                                .add(stopConditionAvailableScrollPane, GroupLayout.PREFERRED_SIZE, 158,
                                        GroupLayout.PREFERRED_SIZE)
                                .add(stopConditionPanelLayout.createSequentialGroup().add(stopConditionAddButton)
                                        .addPreferredGap(LayoutStyle.RELATED).add(stopConditionRemoveButton)
                                        .add(18, 18, 18).add(stopConditionAddAllButton)
                                        .addPreferredGap(LayoutStyle.RELATED).add(stopConditionRemoveAllButton))
                                .add(stopConditionSelectedScrollPane, GroupLayout.PREFERRED_SIZE, 158,
                                        GroupLayout.PREFERRED_SIZE)
                                .add(stopConditionPanelLayout.createSequentialGroup().add(stopConditionUpButton)
                                        .addPreferredGap(LayoutStyle.UNRELATED).add(stopConditionDownButton)))
                        .addPreferredGap(LayoutStyle.RELATED, 15, Short.MAX_VALUE)
                        .add(jLabel5)
                        .add(0, 0, 0)
                        .add(jSeparator4, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                        .add(0, 0, 0)
                        .add(stopConditionDescriptionScrollPane, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE).addContainerGap()));

        defaultPanel.add(stopConditionPanel, "card4");

        measurementLabel.setText("Measurements");

        jLabel10.setText("Available:");

        measurementAvailableList.setModel(new AbstractListModel() {
            String[] strings = { "Measurement 3", "Measurement 4", "Measurement 5" };

            public int getSize() {
                return strings.length;
            }

            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        measurementAvailableScrollPane.setViewportView(measurementAvailableList);

        measurementAddButton.setText("Add >");
        measurementAddButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                measurementAddButtonActionPerformed(evt);
            }
        });

        measurementRemoveButton.setText("< Remove");
        measurementRemoveButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                measurementRemoveButtonActionPerformed(evt);
            }
        });

        measurementAddAllButton.setText("Add All >>");
        measurementAddAllButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                measurementAddAllButtonActionPerformed(evt);
            }
        });

        measurementRemoveAllButton.setText("<< Remoce All");
        measurementRemoveAllButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                measurementRemoveAllButtonActionPerformed(evt);
            }
        });

        measurementSelectedList.setModel(new AbstractListModel() {
            String[] strings = { "Measurement 1", "Measurement 2" };

            public int getSize() {
                return strings.length;
            }

            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        measurementSelectedScrollPane.setViewportView(measurementSelectedList);

        measurementUpButton.setText("Up");
        measurementUpButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                measurementUpButtonActionPerformed(evt);
            }
        });

        measurementDownButton.setText("Down");
        measurementDownButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                measurementDownButtonActionPerformed(evt);
            }
        });

        measurementDescriptionScrollPane.setBackground(new Color(153, 153, 153));
        measurementDescriptionScrollPane.setBorder(null);

        measurementDescriptionTextArea.setBackground(new Color(238, 238, 238));
        measurementDescriptionTextArea.setColumns(20);
        measurementDescriptionTextArea.setEditable(false);
        measurementDescriptionTextArea.setRows(5);
        measurementDescriptionTextArea.setText("Measurement description goes here...");
        measurementDescriptionTextArea.setWrapStyleWord(true);
        measurementDescriptionTextArea.setCaretColor(new Color(238, 238, 238));
        measurementDescriptionTextArea.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
        measurementDescriptionScrollPane.setViewportView(measurementDescriptionTextArea);

        jLabel11.setText("Description");

        jLabel12.setText("Selected:");

        GroupLayout measurementPanelLayout = new GroupLayout(measurementPanel);
        measurementPanel.setLayout(measurementPanelLayout);
        measurementPanelLayout.setHorizontalGroup(measurementPanelLayout.createParallelGroup(GroupLayout.LEADING).add(
                measurementPanelLayout
                        .createSequentialGroup()
                        .addContainerGap()
                        .add(measurementPanelLayout
                                .createParallelGroup(GroupLayout.LEADING)
                                .add(jSeparator9, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                .add(measurementLabel)
                                .add(jLabel11)
                                .add(measurementDescriptionScrollPane, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                .add(jSeparator10, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                .add(measurementPanelLayout
                                        .createSequentialGroup()
                                        .add(measurementPanelLayout
                                                .createParallelGroup(GroupLayout.LEADING)
                                                .add(measurementPanelLayout
                                                        .createSequentialGroup()
                                                        .add(measurementAvailableScrollPane,
                                                                GroupLayout.PREFERRED_SIZE, 198,
                                                                GroupLayout.PREFERRED_SIZE)
                                                        .add(18, 18, 18)
                                                        .add(measurementPanelLayout
                                                                .createParallelGroup(GroupLayout.LEADING, false)
                                                                .add(measurementRemoveAllButton,
                                                                        GroupLayout.DEFAULT_SIZE,
                                                                        GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                                                .add(measurementRemoveButton, GroupLayout.DEFAULT_SIZE,
                                                                        GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                                                .add(measurementAddButton, GroupLayout.DEFAULT_SIZE,
                                                                        GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                                                .add(measurementAddAllButton, GroupLayout.DEFAULT_SIZE,
                                                                        GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                                                .add(jLabel10))
                                        .add(18, 18, 18)
                                        .add(measurementPanelLayout
                                                .createParallelGroup(GroupLayout.LEADING)
                                                .add(jLabel12)
                                                .add(measurementPanelLayout
                                                        .createSequentialGroup()
                                                        .add(measurementSelectedScrollPane, GroupLayout.PREFERRED_SIZE,
                                                                198, GroupLayout.PREFERRED_SIZE)
                                                        .addPreferredGap(LayoutStyle.RELATED)
                                                        .add(measurementPanelLayout
                                                                .createParallelGroup(GroupLayout.LEADING, false)
                                                                .add(measurementUpButton, GroupLayout.DEFAULT_SIZE,
                                                                        GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                                                .add(measurementDownButton, GroupLayout.DEFAULT_SIZE,
                                                                        GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))))
                        .addContainerGap()));
        measurementPanelLayout.setVerticalGroup(measurementPanelLayout.createParallelGroup(GroupLayout.LEADING).add(
                measurementPanelLayout
                        .createSequentialGroup()
                        .addContainerGap()
                        .add(measurementLabel)
                        .add(0, 0, 0)
                        .add(jSeparator9, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
                        .add(18, 18, 18)
                        .add(measurementPanelLayout.createParallelGroup(GroupLayout.BASELINE).add(jLabel10)
                                .add(jLabel12))
                        .addPreferredGap(LayoutStyle.RELATED)
                        .add(measurementPanelLayout
                                .createParallelGroup(GroupLayout.LEADING)
                                .add(measurementAvailableScrollPane, GroupLayout.PREFERRED_SIZE, 158,
                                        GroupLayout.PREFERRED_SIZE)
                                .add(measurementPanelLayout.createSequentialGroup().add(measurementAddButton)
                                        .addPreferredGap(LayoutStyle.RELATED).add(measurementRemoveButton)
                                        .add(18, 18, 18).add(measurementAddAllButton)
                                        .addPreferredGap(LayoutStyle.RELATED).add(measurementRemoveAllButton))
                                .add(measurementSelectedScrollPane, GroupLayout.PREFERRED_SIZE, 158,
                                        GroupLayout.PREFERRED_SIZE)
                                .add(measurementPanelLayout.createSequentialGroup().add(measurementUpButton)
                                        .addPreferredGap(LayoutStyle.UNRELATED).add(measurementDownButton)))
                        .addPreferredGap(LayoutStyle.RELATED, 30, Short.MAX_VALUE)
                        .add(jLabel11)
                        .add(0, 0, 0)
                        .add(jSeparator10, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                        .add(0, 0, 0)
                        .add(measurementDescriptionScrollPane, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE).addContainerGap()));

        defaultPanel.add(measurementPanel, "card5");

        fileLabel.setText("Name and Location");

        jLabel14.setText("Name:");

        fileNameTextField.setText("ProjectName");

        jLabel15.setText("Location:");

        fileLocationTextField.setText("/Users/rorigo/Desenvolvimento/");

        fileBrowseButton.setText("Browse");
        fileBrowseButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                fileBrowseButtonActionPerformed(evt);
            }
        });

        GroupLayout filePanelLayout = new GroupLayout(filePanel);
        filePanel.setLayout(filePanelLayout);
        filePanelLayout
                .setHorizontalGroup(filePanelLayout.createParallelGroup(GroupLayout.LEADING).add(
                        filePanelLayout
                                .createSequentialGroup()
                                .addContainerGap()
                                .add(filePanelLayout
                                        .createParallelGroup(GroupLayout.LEADING)
                                        .add(jSeparator11, GroupLayout.DEFAULT_SIZE, 659, Short.MAX_VALUE)
                                        .add(fileLabel)
                                        .add(filePanelLayout
                                                .createSequentialGroup()
                                                .add(filePanelLayout.createParallelGroup(GroupLayout.LEADING)
                                                        .add(jLabel15).add(jLabel14))
                                                .addPreferredGap(LayoutStyle.RELATED)
                                                .add(filePanelLayout
                                                        .createParallelGroup(GroupLayout.LEADING, false)
                                                        .add(fileLocationTextField)
                                                        .add(fileNameTextField, GroupLayout.DEFAULT_SIZE, 429,
                                                                Short.MAX_VALUE))
                                                .addPreferredGap(LayoutStyle.UNRELATED).add(fileBrowseButton)))
                                .addContainerGap()));
        filePanelLayout.setVerticalGroup(filePanelLayout.createParallelGroup(GroupLayout.LEADING).add(
                filePanelLayout
                        .createSequentialGroup()
                        .addContainerGap()
                        .add(fileLabel)
                        .add(0, 0, 0)
                        .add(jSeparator11, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(LayoutStyle.RELATED)
                        .add(filePanelLayout
                                .createParallelGroup(GroupLayout.BASELINE)
                                .add(jLabel14)
                                .add(fileNameTextField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                        GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(LayoutStyle.UNRELATED)
                        .add(filePanelLayout
                                .createParallelGroup(GroupLayout.BASELINE)
                                .add(jLabel15)
                                .add(fileLocationTextField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                        GroupLayout.PREFERRED_SIZE).add(fileBrowseButton))
                        .addContainerGap(274, Short.MAX_VALUE)));

        defaultPanel.add(filePanel, "card6");

        getContentPane().add(defaultPanel, BorderLayout.CENTER);

        flowButtonsPanel.setMinimumSize(new Dimension(100, 40));
        flowButtonsPanel.setPreferredSize(new Dimension(508, 40));
        flowButtonsPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));

        backButton.setText("< Back");
        backButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                backButtonActionPerformed(evt);
            }
        });
        flowButtonsPanel.add(backButton);

        nextButton.setText("Next >");
        nextButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                nextButtonActionPerformed(evt);
            }
        });
        flowButtonsPanel.add(nextButton);

        finishButton.setText("Finish");
        finishButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                finishButtonActionPerformed(evt);
            }
        });
        flowButtonsPanel.add(finishButton);

        cancelButton.setText("Cancel");
        cancelButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                cancelButtonActionPerformed(evt);
            }
        });
        flowButtonsPanel.add(cancelButton);

        getContentPane().add(flowButtonsPanel, BorderLayout.PAGE_END);

        pack();
    }// </editor-fold>

    protected abstract void backButtonActionPerformed(ActionEvent evt);

    protected abstract void nextButtonActionPerformed(ActionEvent evt);

    protected abstract void cancelButtonActionPerformed(ActionEvent evt);

    protected abstract void stopConditionAddButtonActionPerformed(ActionEvent evt);

    protected abstract void fileBrowseButtonActionPerformed(ActionEvent evt);

    protected abstract void measurementUpButtonActionPerformed(ActionEvent evt);

    protected abstract void measurementDownButtonActionPerformed(ActionEvent evt);

    protected abstract void measurementAddButtonActionPerformed(ActionEvent evt);

    protected abstract void measurementRemoveButtonActionPerformed(ActionEvent evt);

    protected abstract void measurementAddAllButtonActionPerformed(ActionEvent evt);

    protected abstract void measurementRemoveAllButtonActionPerformed(ActionEvent evt);

    protected abstract void stopConditionRemoveButtonActionPerformed(ActionEvent evt);

    protected abstract void stopConditionAddAllButtonActionPerformed(ActionEvent evt);

    protected abstract void stopConditionRemoveAllButtonActionPerformed(ActionEvent evt);

    protected abstract void stopConditionUpButtonActionPerformed(ActionEvent evt);

    protected abstract void stopConditionDownButtonActionPerformed(ActionEvent evt);

    protected abstract void finishButtonActionPerformed(ActionEvent evt);

    // Variables declaration - do not modify
    protected JComboBox algorithmComboBox;
    protected JScrollPane algorithmDescriptionScrollPane;
    protected JTextArea algorithmDescriptionTextArea;
    protected JLabel algorithmLabel;
    protected JPanel algorithmPanel;
    protected JSeparator algorithmTitleSeparator;
    protected JButton backButton;
    protected JButton cancelButton;
    protected JPanel defaultPanel;
    protected JButton fileBrowseButton;
    protected JLabel fileLabel;
    protected JTextField fileLocationTextField;
    protected JTextField fileNameTextField;
    protected JPanel filePanel;
    protected JButton finishButton;
    protected JPanel flowButtonsPanel;
    protected JLabel jLabel10;
    protected JLabel jLabel11;
    protected JLabel jLabel12;
    protected JLabel jLabel14;
    protected JLabel jLabel15;
    protected JLabel jLabel3;
    protected JLabel jLabel4;
    protected JLabel jLabel5;
    protected JLabel jLabel7;
    protected JLabel jLabel8;
    protected JSeparator jSeparator10;
    protected JSeparator jSeparator11;
    protected JSeparator jSeparator3;
    protected JSeparator jSeparator4;
    protected JSeparator jSeparator6;
    protected JSeparator jSeparator7;
    protected JSeparator jSeparator9;
    protected JButton measurementAddAllButton;
    protected JButton measurementAddButton;
    protected JList measurementAvailableList;
    protected JScrollPane measurementAvailableScrollPane;
    protected JScrollPane measurementDescriptionScrollPane;
    protected JTextArea measurementDescriptionTextArea;
    protected JButton measurementDownButton;
    protected JLabel measurementLabel;
    protected JPanel measurementPanel;
    protected JButton measurementRemoveAllButton;
    protected JButton measurementRemoveButton;
    protected JList measurementSelectedList;
    protected JScrollPane measurementSelectedScrollPane;
    protected JButton measurementUpButton;
    protected JButton nextButton;
    protected JComboBox problemComboBox;
    protected JScrollPane problemDescriptionScrollPane;
    protected JTextArea problemDescriptionTextArea;
    protected JLabel problemLabel;
    protected JPanel problemPanel;
    protected JSeparator problemTitleSeparator;
    protected JButton stopConditionAddAllButton;
    protected JButton stopConditionAddButton;
    protected JList stopConditionAvailableList;
    protected JScrollPane stopConditionAvailableScrollPane;
    protected JScrollPane stopConditionDescriptionScrollPane;
    protected JTextArea stopConditionDescriptionTextArea;
    protected JButton stopConditionDownButton;
    protected JLabel stopConditionLabel;
    protected JPanel stopConditionPanel;
    protected JButton stopConditionRemoveAllButton;
    protected JButton stopConditionRemoveButton;
    protected JList stopConditionSelectedList;
    protected JScrollPane stopConditionSelectedScrollPane;
    protected JButton stopConditionUpButton;
    // End of variables declaration
}
